﻿YUI.add('editar-catalogo-view', function (Y) {
    'use strict';
    Y.EditarCatalogo = Y.Base.create('EditarCatalogo', Y.View, [], {
        templateIsCharged: false,
        loadTemplate: function () {
            if (this.template == '') {
                var that = this,
                validator = null,
                request = Y.io('/ExcellentProject/scripts/views/catalogos/catalogos/templates/editar.html', {
                    on: {
                        complete: function (id, response) {
                            that.templateIsCharged = true;
                            that.template = response.responseText;
                            that.render();
                        }
                    },
                    failure: function (id, response) {
                        alert(response)
                    }
                })
            }
        },
        events: {
            '.guardar': {
                click: 'guardarCatalogo'
            }
        },
        render: function () {
            this.loadTemplate();
            if (this.templateIsCharged) {
                var contentTemplate = Y.Handlebars.compile(this.template);
                this.get('container').setHTML(contentTemplate(this.get('model').getAttrs()));
                if (this.get('model').get('IdCatalogo') != 0) {
                    var statusListSelected = Y.one('#estado');
                    statusListSelected.set('value', this.get('model').get('Estado'));
                }
                $("#inputNombre").alfa();
            }
            $('#inputClave').alpha();
            $('#inputNombre').alpha();
            $('#inputValor').alpha();
            $('#inputDescripcion').alpha();
            $('#inputEstado').alpha();
        },

        guardarCatalogo: function (ev) {
            var model = this.get('model')
            var requiredMessages = '';

            //validacion de campos requeridos
            if (Y.one('#inputClave').get('value') == '') {
                Y.one('#claveGroup').removeClass('has-success')
                Y.one('#claveGroup').toggleClass('has-error', true)
                requiredMessages = ' - Clave Requerida. <br/>';

            } else {
                Y.one('#claveGroup').removeClass('has-error')
                Y.one('#claveGroup').toggleClass('has-success', true)
            }

            if (Y.one('#inputNombre').get('value') == '') {
                Y.one('#nombreGroup').toggleClass('has-success')
                Y.one('#nombreGroup').toggleClass('has-error', true)
                requiredMessages += ' - Nombre requerido. <br/>';

            } else {
                Y.one('#nombreGroup').removeClass('has-error')
                Y.one('#nombreGroup').toggleClass('has-success', true)
            }

            if (Y.one('#inputValor').get('value') == '') {
                Y.one('#valorGroup').toggleClass('has-success')
                Y.one('#valorGroup').toggleClass('has-error', true)
                requiredMessages += ' - Valor requerido. <br/>';

            } else {
                Y.one('#valorGroup').removeClass('has-error')
                Y.one('#valorGroup').toggleClass('has-success', true)
            }

            if (Y.one('#inputDescripcion').get('value') == '') {
                Y.one('#descripcionGroup').toggleClass('has-success')
                Y.one('#descripcionGroup').toggleClass('has-error', true)
                requiredMessages += ' - Descripción requerida. <br/>';

            } else {
                Y.one('#descripcionGroup').removeClass('has-error')
                Y.one('#descripcionGroup').toggleClass('has-success', true)
            }
            if (requiredMessages != '') {
                bootbox.dialog({
                    message: requiredMessages,
                    title: "Problemas de Validación",
                    show: true,
                    backdrop: true,
                    closeButton: true,
                    animate: true,

                    className: "my-modal",
                    buttons: {
                        success: {
                            label: "Ok",
                            className: "btn btn-info",

                            callback: function () { }
                        }
                    }
                });
                return;
            }
            model.setAttrs({
                IdCatalogo: Y.one('#id').get('value'),
                Clave: Y.one('#inputClave').get('value'),
                NombreCatalogo: Y.one('#inputNombre').get('value'),
                ValorCatalogo: Y.one('#inputValor').get('value'),
                Descripcion: Y.one('#inputDescripcion').get('value'),
                Estado: Y.one('#estado').get('value')
            });

            var options = null;

            if (model.get('IdCatalogo') != 0)
                options = { action: 'update', idCat: model.get('IdCatalogo'), headers: amplify.store('authorization') };
            else
                options = { urlName: 'saveOption', headers: amplify.store('authorization') };
            debugger

            var that = this, a = model.save(options, function (err, response) {
                if (err != null)
                    bootbox.alert("Ocurrieron problemas al actualizar el catálogo")
                else {
                    bootbox.alert("Catalogo actualizado exitosamente")
                    Y.one('#regresar').simulate('click')
                }
            });
        }
    })
}, '1.0.0.0', { requires: ['handlebars', 'node', 'node-event-simulate'] })